جزوه · خلاصه کردن و بررسی فایل‌ها (wc, cut, md5sum) ← بازگشت به فهرست
📘 فصل اول · قسمت سیزدهم خلاصه کردن و بررسی فایل‌ها
📅 تاریخ: ۱۸ مرداد ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian

▍ مقدمه

در این جلسه با ابزارهایی آشنا می‌شویم که به ما کمک می‌کنند:

🔑 بخش‌های اصلی این جلسه:
  • خلاصه کردن فایل: wc (Word Count)
  • استخراج ستون‌ها: cut
  • بررسی صحت فایل: md5sum و سایر هش‌ها

▍ فرمان wc (Word Count)

wc مخفف Word Count است و اطلاعات آماری درباره فایل می‌دهد:

┌──(ya3in㉿kali)-[~] └─$ wc file.txt 5 20 120 file.txt

خروجی: ۵ خط، ۲۰ کلمه، ۱۲۰ کاراکتر

• گزینه‌های پرکاربرد wc

گزینه توضیح
-l فقط تعداد خطوط (Lines)
-w فقط تعداد کلمات (Words)
-c فقط تعداد بایت‌ها (Bytes)
-m فقط تعداد کاراکترها (Characters)
-L نمایش طول بلندترین خط
┌──(ya3in㉿kali)-[~] └─$ wc -l file.txt 5 file.txt └─$ wc -w file.txt 20 file.txt └─$ wc -L file.txt 35 file.txt

طولانی‌ترین خط این فایل ۳۵ کاراکتر است.

💡 نکته کاربردی:

می‌توانید از wc -l برای شمارش تعداد فایل‌های یک دایرکتوری استفاده کنید:

┌──(ya3in㉿kali)-[~] └─$ ls -1 | wc -l 12

تعداد فایل‌های دایرکتوری جاری را نشان می‌دهد.

▍ فرمان cut (استخراج ستون‌ها)

cut برای استخراج بخش‌هایی از هر خط فایل استفاده می‌شود.

• گزینه‌های اصلی cut

گزینه توضیح
-d مشخص کردن جداکننده (Delimiter) - پیش‌فرض Tab
-f مشخص کردن فیلدهای مورد نظر (با جداکننده)
-c مشخص کردن کاراکترهای مورد نظر (بر اساس موقعیت)
┌──(ya3in㉿kali)-[~] └─$ cat students.txt ali:20:Tehran
reza:22:Shiraz
sara:19:Isfahan
└─$ cut -d: -f1 students.txt ali
reza
sara

استخراج فیلد اول (اسامی) با جداکننده :.

┌──(ya3in㉿kali)-[~] └─$ cut -d: -f2,3 students.txt 20:Tehran
22:Shiraz
19:Isfahan

استخراج فیلدهای دوم و سوم (سن و شهر).

• استفاده از cut با کاراکترها (-c)

┌──(ya3in㉿kali)-[~] └─$ cut -c1-5 file.txt

استخراج کاراکترهای ۱ تا ۵ از هر خط.

▍ هش کردن و بررسی صحت فایل

هش (Hash) یک اثر انگشت دیجیتال برای فایل است. با تغییر کوچک در فایل، هش آن کاملاً عوض می‌شود. برای بررسی صحت و یکپارچگی فایل‌ها از ابزارهای هش استفاده می‌شود.

• md5sum

┌──(ya3in㉿kali)-[~] └─$ md5sum file.txt d41d8cd98f00b204e9800998ecf8427e file.txt

هش MD5 فایل file.txt. اگر فایل تغییر کند، هش عوض می‌شود.

┌──(ya3in㉿kali)-[~] └─$ md5sum -c checksum.md5 file.txt: OK

بررسی صحت فایل با فایل هش ذخیره شده.

• سایر ابزارهای هش

فرمان الگوریتم کاربرد
md5sum MD5 سریع، اما کمتر امن (برای بررسی صحت)
sha1sum SHA-1 امن‌تر از MD5
sha256sum SHA-256 امن‌ترین و رایج‌ترین
sha512sum SHA-512 امن‌تر از SHA-256
⭐ کاربرد عملی هش:
  • وقتی یک فایل از اینترنت دانلود می‌کنید، سایت اصلی هش فایل را هم می‌دهد.
  • بعد از دانلود، با md5sum یا sha256sum هش را محاسبه کنید.
  • اگر هش محاسبه‌شده با هش سایت برابر بود، فایل صحیح است.
┌──(ya3in㉿kali)-[~] └─$ sha256sum ubuntu.iso e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ubuntu.iso

محاسبه هش SHA-256 برای فایل ubuntu.iso.

• ترکیب هش با سایر ابزارها

می‌توانید خروجی هش را در یک فایل ذخیره کنید و بعداً بررسی کنید:

┌──(ya3in㉿kali)-[~] └─$ md5sum file.txt > file.md5 └─$ md5sum -c file.md5 file.txt: OK

اگر فایل تغییر کرده باشد، خروجی FAILED می‌شود.

▍ خلاصه دستورات

دستور کاربرد
wc تعداد خطوط، کلمات و کاراکترها
wc -l فقط تعداد خطوط
wc -w فقط تعداد کلمات
cut -d: -f1 استخراج فیلد اول با جداکننده :
cut -c1-5 استخراج کاراکترهای ۱ تا ۵
md5sum محاسبه هش MD5
sha256sum محاسبه هش SHA-256
md5sum -c بررسی صحت فایل با هش ذخیره شده
✅ تمرین پیشنهادی:
  • یک فایل متنی بسازید و با wc -l تعداد خطوط آن را ببینید.
  • یک فایل CSV (با جداکننده ,) بسازید و با cut ستون خاصی را استخراج کنید.
  • با md5sum هش یک فایل را محاسبه کنید و در فایل ذخیره کنید.
  • یک کاراکتر به فایل اضافه کنید و دوباره هش را محاسبه کنید. تفاوت را ببینید.